package com.gpframework.module.ctn.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gpframework.module.ctn.domain.GpPackagesInformation;
import com.gpframework.module.ctn.domain.GpReceiptGoods;
import com.gpframework.module.ctn.domain.req.GpPackagesInformationAdd;
import com.gpframework.module.ctn.domain.req.GpPackagesInformationUpdate;
import com.gpframework.module.ctn.domain.vo.GpCtnOrderExcel;
import com.gpframework.module.ctn.domain.vo.GpPackagesInformationExcel;
import com.gpframework.module.ctn.domain.vo.GpPackagesInformationVo;

import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.List;
/**
 * @ClassName GpPackagesInformation
 * @Author gpframework
 * @Date 2024-01-08
 * @Version 1.0.0
 * @Description 打包信息填写Service接口
 */
public interface IGpPackagesInformationService extends IService<GpPackagesInformation> {

    /**
     * @Description 查询列表返回VO 用于返回给前端的列表接口
     * @Author gpframework
     * @Date 2024-01-08
     * @Param [lqw]
     * @Return List<GpPackagesInformationVo>
     * @return
     */
    List<GpPackagesInformationVo> listVo(QueryWrapper<GpPackagesInformation> lqw);

    /**
     * @Description 通过查询详情VO 用于返回给前端的列详情接口
     * @Author gpframework
     * @Date 2024-01-08
     * @Param [id]
     * @Return GpPackagesInformationVo
     */
    GpPackagesInformationVo getVoById(Long id);

    List<GpPackagesInformationExcel> gpPackagesInformationImport(List<GpPackagesInformationExcel> excelList, Long brandId, Long storeId);

    boolean createPackages(GpPackagesInformationAdd gpPackagesInformationAdd);


    boolean updateBatch(GpReceiptGoods gpReceiptGoods) throws Exception;

    boolean editBatch(GpPackagesInformationUpdate gpPackagesInformationUpdate) throws Exception;


    boolean copy(Long id, Integer copyNum);

    List<GpPackagesInformationVo> listVoed(QueryWrapper<GpPackagesInformation> lqw);

    GpCtnOrderExcel getString(Collection<?> coll, Object ob, InputStream inputStream, String fileName) throws IOException;
}
